package top.lfyao.designpattern.details.memento;

public class MementoClient {
    public static void main(String[] args) {
        // 设置初始状态
        Originator originator = new Originator();
        originator.setState("开始");
        originator.show();
        // 管理者通过备忘录保存状态，由于有了很好地封装，可以隐藏Originator的实现细节
        CareTaker careTaker = new CareTaker();
        careTaker.setMemento(originator.createMemento());
        // 改变状态
        originator.setState("结束");
        originator.show();
        // 通过管理者从备忘录中恢复状态
        originator.recoverMemento(careTaker.getMemento());
        originator.show();
    }
}
